/*
 * MenuBarBean
 *
 * Creado el 26/04/2009, 03:07:52 AM
 */
package com.unicon.autoservicio.view.bean;

import com.icesoft.faces.component.menubar.MenuItem;
import com.unicon.autoservicio.util.FacesUtils;

import com.unicon.view.ManageBeanNames;
import java.util.ArrayList;
import java.util.List;
import javax.el.MethodExpression;
import javax.faces.context.FacesContext;
import org.apache.log4j.Logger;

/**
 *
 * @author Ricardo Rodríguez
 */
public final class MenuBarBean {

    private final Logger logger = Logger.getLogger(MenuBarBean.class.getName());
    private List<MenuItem> menuModel;
    private Boolean menuDesempennoObra;
    private String menuDesempennoObraLink;
    private Boolean menuCertificadosCalidad;
    private String menuCertificadosCalidadLink;
    private Boolean menuEstatusReclamos;
    private String menuEstatusReclamosLink;
    private Boolean menuAcuerdoComerciales;
    private String menuAcuerdoComercialesLink;
    private Boolean menuFacturacionCreditosCobranza;
    private String menuFacturacionCreditosCobranzaLink;
    private Boolean menuEstadoDeCredito;
    private String menuEstadoDeCreditoLink;
    private Boolean menuEstadoDeCuenta;
    private String menuEstadoDeCuentaLink;
    private Boolean menuHistorialDePagos;
    private String menuHistorialDePagosLink;
    private Boolean menuEntregasClinteObra;
    private String menuEntregasClinteObraLink;
    private Boolean menuComprobantesDePercepcion;
    private String menuComprobantesDePercepcionLink;
    /* JMENDOZA | 20140116 | Proy. 817: Seteo de Menu programacion y despacho */
    /* 20140116-01 | INICIO */
    private String menuEstatusPedidosLink;
    private Boolean menuEstatusPedidos;
    private Boolean menuConsultaPedidos;
    private String menuConsultaPedidosLink;
    /* 20140116-01 | FIN */
    /* JMENDOZA | 20140131 | Proy. 817: Seteo de Menu programacion y despacho */
    /* 20140131-01 | INICIO */
    private Boolean menuConsultaDespachos;
    private String menuConsultaDespachosLink;
    /* 20140131-01 | FIN */
    /* JMENDOZA | 20140210 | Proy. 817: Seteo de Menu Que tengo programado */
    /* 20140210-01 | INICIO */
    private Boolean menuQueTengoProgramado;
    private String menuQueTengoProgramadoLink;
    /* 20140210-01 | FIN */
    /* JMENDOZA | 20140210 | Proy. 817: Seteo de Menu Despachos del Dia */
    /* 20140210-03 | INICIO */
    private Boolean menuDespachosDelDia;
    private String menuDespachosDelDiaLink;
    /* 20140210-03 | FIN */
    /**
     * orientation of the menubar ("horizontal" or "vertical")
     */
    private String orientation;

    public MenuBarBean() {
        orientation = "horizontal";
        int indexOf = -1;

        UsuarioBean usuarioBean = FacesUtils.getManagedBean(
                ManageBeanNames.BEAN_USUARIO, UsuarioBean.class);
        VistaBean vb = new VistaBean();
        vb.setObjeto("menu.jspx");
        ArrayList<AccionBean> lstAcciones =
                usuarioBean.getVistas().get(usuarioBean.getVistas().indexOf(vb)).getAcciones();

        AccionBean ab = new AccionBean();
        AccionBean accionBean;







        /* JMENDOZA | 20140116 | Proy. 817: Seteo de Menu programacion y despacho */
        /* 20140116-02 | INICIO */
        menuEstatusPedidos = false;
        ab.setItem("menuProgramacionDespacho");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuEstatusPedidos = true;
            accionBean = lstAcciones.get(indexOf);
            menuEstatusPedidosLink = "./RedirectServlet?pagina=mainProgramacionDespacho.iface";
        }

        menuConsultaPedidos = false;
        ab.setItem("menuConsultaPedidos");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuConsultaPedidos = true;
            accionBean = lstAcciones.get(indexOf);
            menuConsultaPedidosLink = "./RedirectServlet?pagina=consultaPedidosCS.iface";
        }
        /* 20140116-02 | FIN */


        /* JMENDOZA | 20140131 | Proy. 817: Seteo de Menu Consulta de Despacho */
        /* 20140131-02 | INICIO */
        menuConsultaDespachos = false;
        ab.setItem("menuConsultaDespachos");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuConsultaDespachos = true;
            accionBean = lstAcciones.get(indexOf);
            menuConsultaDespachosLink = "./RedirectServlet?pagina=consultaDespachosCS.iface";
        }
        /* 20140131-02 | FIN */


        /* JMENDOZA | 20140210 | Proy. 817: Seteo de Menu Consulta de Despacho */
        /* 20140210-02 | INICIO */
        menuQueTengoProgramado = false;
        ab.setItem("menuQueTengoProgramado");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuQueTengoProgramado = true;
            accionBean = lstAcciones.get(indexOf);
            menuQueTengoProgramadoLink = "./RedirectServlet?pagina=quetengoprogramado.iface";
        }
        /* 20140210-02 | FIN */


        /* JMENDOZA | 20140210 | Proy. 817: Seteo de Menu Despachos del Dia */
        /* 20140210-04 | INICIO */
        menuDespachosDelDia = false;
        ab.setItem("menuQueTengoProgramado");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuDespachosDelDia = true;
            accionBean = lstAcciones.get(indexOf);
            menuDespachosDelDiaLink = "./RedirectServlet?pagina=despachosdeldia.iface";
        }
        /* 20140210-04 | FIN */

        ab.setItem("menuDesempennoObra");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuDesempennoObra = true;
            accionBean = lstAcciones.get(indexOf);
            menuDesempennoObraLink = accionBean.getDescripcion();
        }


        menuCertificadosCalidad = false;
        ab.setItem("menuCertificadosDeCalidad");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuCertificadosCalidad = true;
            accionBean = lstAcciones.get(indexOf);
            menuCertificadosCalidadLink = "./RedirectServlet?pagina=consultaGuiasRemision.iface";
        }

        menuEstatusReclamos = false;
        ab.setItem("menuEstatusReclamos");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuEstatusReclamos = true;
            accionBean = lstAcciones.get(indexOf);
            menuEstatusReclamosLink = accionBean.getDescripcion();
        }

        menuFacturacionCreditosCobranza = false;
        ab.setItem("menuFacturacionCreditosCobranza");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuFacturacionCreditosCobranza = true;
            accionBean = lstAcciones.get(indexOf);
            menuFacturacionCreditosCobranzaLink = "./RedirectServlet?pagina=mainFacturacionCreditosCobranza.iface";
        }

        menuEntregasClinteObra = false;
        ab.setItem("menuEntregasClienteObra");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuEntregasClinteObra = true;
            accionBean = lstAcciones.get(indexOf);
            menuEntregasClinteObraLink = "./RedirectServlet?pagina=consultaEntregasPorClienteObra.iface";
        }


        menuEstadoDeCredito = false;
        ab.setItem("menuEstadoDeCredito");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuEstadoDeCredito = true;
            accionBean = lstAcciones.get(indexOf);
            menuEstadoDeCreditoLink = "./RedirectServlet?pagina=consultaEstadoDeCredito.iface";
        }

        menuEstadoDeCuenta = false;
        ab.setItem("menuEstadoDeCuenta");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuEstadoDeCuenta = true;
            accionBean = lstAcciones.get(indexOf);
            menuEstadoDeCuentaLink = "./RedirectServlet?pagina=consultaEstadoDeCuenta.iface";
        }


        menuHistorialDePagos = false;
        ab.setItem("menuHistorialDePagos");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuHistorialDePagos = true;
            accionBean = lstAcciones.get(indexOf);
            menuHistorialDePagosLink = "./RedirectServlet?pagina=consultaHistorialDePagos.iface";
        }


        menuComprobantesDePercepcion = false;
        ab.setItem("menuComprobantePercepcion");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuComprobantesDePercepcion = true;
            accionBean = lstAcciones.get(indexOf);
            menuComprobantesDePercepcionLink = "./RedirectServlet?pagina=consultaDocumentosDePercepcion.iface";

        }



        menuAcuerdoComerciales = false;
        ab.setItem("menuAcuerdoComerciales");
        indexOf = lstAcciones.indexOf(ab);
        if (indexOf >= 0) {
            menuAcuerdoComerciales = true;
            menuAcuerdoComercialesLink = "";
        }

    }

    /**
     * Get the orientation of the menu ("horizontal" or "vertical")
     *
     * @return the orientation of the menu
     */
    public String getOrientation() {
        return orientation;
    }

    /**
     * Set the orientation of the menu ("horizontal" or "vertical").
     *
     * @param orientation the new orientation of the menu
     */
    public void setOrientation(String orientation) {
        this.orientation = orientation;
    }

    /**
     * @return the menuModel
     */
    public List getMenuModel() {
        return menuModel;
    }

    private MethodExpression createActionMethodExpression(String expression) {
        MethodExpression action = FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createMethodExpression(
                FacesContext.getCurrentInstance().getELContext(), expression,
                String.class, new Class[]{});
        return action;
    }

    /**
     * @return the menuEstatusPedidos
     */
    public Boolean getMenuEstatusPedidos() {
        return menuEstatusPedidos;
    }

    /**
     * @param menuEstatusPedidos the menuEstatusPedidos to set
     */
    public void setMenuEstatusPedidos(Boolean menuEstatusPedidos) {
        this.menuEstatusPedidos = menuEstatusPedidos;
    }

    /**
     * @return the menuEstatusPedidosLink
     */
    public String getMenuEstatusPedidosLink() {
        return menuEstatusPedidosLink;
    }

    /**
     * @param menuEstatusPedidosLink the menuEstatusPedidosLink to set
     */
    public void setMenuEstatusPedidosLink(String menuEstatusPedidosLink) {
        this.menuEstatusPedidosLink = menuEstatusPedidosLink;
    }

    /**
     * @return the menuDesempennoObra
     */
    public Boolean getMenuDesempennoObra() {
        return menuDesempennoObra;
    }

    /**
     * @param menuDesempennoObra the menuDesempennoObra to set
     */
    public void setMenuDesempennoObra(Boolean menuDesempennoObra) {
        this.menuDesempennoObra = menuDesempennoObra;
    }

    /**
     * @return the menuDesempennoObraLink
     */
    public String getMenuDesempennoObraLink() {
        return menuDesempennoObraLink;
    }

    /**
     * @param menuDesempennoObraLink the menuDesempennoObraLink to set
     */
    public void setMenuDesempennoObraLink(String menuDesempennoObraLink) {
        this.menuDesempennoObraLink = menuDesempennoObraLink;
    }

    /**
     * @return the menuCertificadosCalidad
     */
    public Boolean getMenuCertificadosCalidad() {
        return menuCertificadosCalidad;
    }

    /**
     * @param menuCertificadosCalidad the menuCertificadosCalidad to set
     */
    public void setMenuCertificadosCalidad(Boolean menuCertificadosCalidad) {
        this.menuCertificadosCalidad = menuCertificadosCalidad;
    }

    /**
     * @return the menuCertificadosCalidadLink
     */
    public String getMenuCertificadosCalidadLink() {
        return menuCertificadosCalidadLink;
    }

    /**
     * @param menuCertificadosCalidadLink the menuCertificadosCalidadLink to set
     */
    public void setMenuCertificadosCalidadLink(String menuCertificadosCalidadLink) {
        this.menuCertificadosCalidadLink = menuCertificadosCalidadLink;
    }

    /**
     * @return the menuEstatusReclamos
     */
    public Boolean getMenuEstatusReclamos() {
        return menuEstatusReclamos;
    }

    /**
     * @param menuEstatusReclamos the menuEstatusReclamos to set
     */
    public void setMenuEstatusReclamos(Boolean menuEstatusReclamos) {
        this.menuEstatusReclamos = menuEstatusReclamos;
    }

    /**
     * @return the menuEstatusReclamosLink
     */
    public String getMenuEstatusReclamosLink() {
        return menuEstatusReclamosLink;
    }

    /**
     * @param menuEstatusReclamosLink the menuEstatusReclamosLink to set
     */
    public void setMenuEstatusReclamosLink(String menuEstatusReclamosLink) {
        this.menuEstatusReclamosLink = menuEstatusReclamosLink;
    }

    /**
     * @return the menuAcuerdoComerciales
     */
    public Boolean getMenuAcuerdoComerciales() {
        return menuAcuerdoComerciales;
    }

    /**
     * @param menuAcuerdoComerciales the menuAcuerdoComerciales to set
     */
    public void setMenuAcuerdoComerciales(Boolean menuAcuerdoComerciales) {
        this.menuAcuerdoComerciales = menuAcuerdoComerciales;
    }

    /**
     * @return the menuAcuerdoComercialesLink
     */
    public String getMenuAcuerdoComercialesLink() {
        return menuAcuerdoComercialesLink;
    }

    /**
     * @param menuAcuerdoComercialesLink the menuAcuerdoComercialesLink to set
     */
    public void setMenuAcuerdoComercialesLink(String menuAcuerdoComercialesLink) {
        this.menuAcuerdoComercialesLink = menuAcuerdoComercialesLink;
    }

    /**
     * @return the menuConsultaPedidos
     */
    public Boolean getMenuConsultaPedidos() {
        return menuConsultaPedidos;
    }

    /**
     * @param menuConsultaPedidos the menuConsultaPedidos to set
     */
    public void setMenuConsultaPedidos(Boolean menuConsultaPedidos) {
        this.menuConsultaPedidos = menuConsultaPedidos;
    }

    /**
     * @return the menuConsultaPedidosLink
     */
    public String getMenuConsultaPedidosLink() {
        return menuConsultaPedidosLink;
    }

    /**
     * @param menuConsultaPedidosLink the menuConsultaPedidosLink to set
     */
    public void setMenuConsultaPedidosLink(String menuConsultaPedidosLink) {
        this.menuConsultaPedidosLink = menuConsultaPedidosLink;
    }

    /**
     * @return the menuEntregasClinteObra
     */
    public Boolean getMenuEntregasClinteObra() {
        return menuEntregasClinteObra;
    }

    /**
     * @param menuEntregasClinteObra the menuEntregasClinteObra to set
     */
    public void setMenuEntregasClinteObra(Boolean menuEntregasClinteObra) {
        this.menuEntregasClinteObra = menuEntregasClinteObra;
    }

    /**
     * @return the menuEntregasClinteObraLink
     */
    public String getMenuEntregasClinteObraLink() {
        return menuEntregasClinteObraLink;
    }

    /**
     * @param menuEntregasClinteObraLink the menuEntregasClinteObraLink to set
     */
    public void setMenuEntregasClinteObraLink(String menuEntregasClinteObraLink) {
        this.menuEntregasClinteObraLink = menuEntregasClinteObraLink;
    }

    /**
     * @return the menuHistorialDePagos
     */
    public Boolean getMenuHistorialDePagos() {
        return menuHistorialDePagos;
    }

    /**
     * @param menuHistorialDePagos the menuHistorialDePagos to set
     */
    public void setMenuHistorialDePagos(Boolean menuHistorialDePagos) {
        this.menuHistorialDePagos = menuHistorialDePagos;
    }

    /**
     * @return the menuHistorialDePagosLink
     */
    public String getMenuHistorialDePagosLink() {
        return menuHistorialDePagosLink;
    }

    /**
     * @param menuHistorialDePagosLink the menuHistorialDePagosLink to set
     */
    public void setMenuHistorialDePagosLink(String menuHistorialDePagosLink) {
        this.menuHistorialDePagosLink = menuHistorialDePagosLink;
    }

    /**
     * @return the menuFacturacionCreditosCobranza
     */
    public Boolean getMenuFacturacionCreditosCobranza() {
        return menuFacturacionCreditosCobranza;
    }

    /**
     * @param menuFacturacionCreditosCobranza the
     * menuFacturacionCreditosCobranza to set
     */
    public void setMenuFacturacionCreditosCobranza(Boolean menuFacturacionCreditosCobranza) {
        this.menuFacturacionCreditosCobranza = menuFacturacionCreditosCobranza;
    }

    /**
     * @return the menuFacturacionCreditosCobranzaLink
     */
    public String getMenuFacturacionCreditosCobranzaLink() {
        return menuFacturacionCreditosCobranzaLink;
    }

    /**
     * @param menuFacturacionCreditosCobranzaLink the
     * menuFacturacionCreditosCobranzaLink to set
     */
    public void setMenuFacturacionCreditosCobranzaLink(String menuFacturacionCreditosCobranzaLink) {
        this.menuFacturacionCreditosCobranzaLink = menuFacturacionCreditosCobranzaLink;
    }

    /**
     * @return the menuEstadoDeCredito
     */
    public Boolean getMenuEstadoDeCredito() {
        return menuEstadoDeCredito;
    }

    /**
     * @param menuEstadoDeCredito the menuEstadoDeCredito to set
     */
    public void setMenuEstadoDeCredito(Boolean menuEstadoDeCredito) {
        this.menuEstadoDeCredito = menuEstadoDeCredito;
    }

    /**
     * @return the menuEstadoDeCreditoLink
     */
    public String getMenuEstadoDeCreditoLink() {
        return menuEstadoDeCreditoLink;
    }

    /**
     * @param menuEstadoDeCreditoLink the menuEstadoDeCreditoLink to set
     */
    public void setMenuEstadoDeCreditoLink(String menuEstadoDeCreditoLink) {
        this.menuEstadoDeCreditoLink = menuEstadoDeCreditoLink;
    }

    /**
     * @return the menuEstadoDeCuenta
     */
    public Boolean getMenuEstadoDeCuenta() {
        return menuEstadoDeCuenta;
    }

    /**
     * @param menuEstadoDeCuenta the menuEstadoDeCuenta to set
     */
    public void setMenuEstadoDeCuenta(Boolean menuEstadoDeCuenta) {
        this.menuEstadoDeCuenta = menuEstadoDeCuenta;
    }

    /**
     * @return the menuEstadoDeCuentaLink
     */
    public String getMenuEstadoDeCuentaLink() {
        return menuEstadoDeCuentaLink;
    }

    /**
     * @param menuEstadoDeCuentaLink the menuEstadoDeCuentaLink to set
     */
    public void setMenuEstadoDeCuentaLink(String menuEstadoDeCuentaLink) {
        this.menuEstadoDeCuentaLink = menuEstadoDeCuentaLink;
    }

    public Boolean getMenuConsultaDespachos() {
        return menuConsultaDespachos;
    }

    /**
     *
     * @param menuConsultaDespachos
     */
    public void setMenuConsultaDespachos(Boolean menuConsultaDespachos) {
        this.menuConsultaDespachos = menuConsultaDespachos;
    }

    /**
     *
     * @return
     */
    public String getMenuConsultaDespachosLink() {
        return menuConsultaDespachosLink;
    }

    /**
     *
     * @param menuConsultaDespachosLink
     */
    public void setMenuConsultaDespachosLink(String menuConsultaDespachosLink) {
        this.menuConsultaDespachosLink = menuConsultaDespachosLink;
    }

    /**
     * @return the menuComprobantesDePercepcion
     */
    public Boolean getMenuComprobantesDePercepcion() {
        return menuComprobantesDePercepcion;
    }

    /**
     * @param menuComprobantesDePercepcion the menuComprobantesDePercepcion to
     * set
     */
    public void setMenuComprobantesDePercepcion(Boolean menuComprobantesDePercepcion) {
        this.menuComprobantesDePercepcion = menuComprobantesDePercepcion;
    }

    /**
     * @return the menuComprobantesDePercepcionLink
     */
    public String getMenuComprobantesDePercepcionLink() {
        return menuComprobantesDePercepcionLink;
    }

    /**
     * @param menuComprobantesDePercepcionLink the
     * menuComprobantesDePercepcionLink to set
     */
    public void setMenuComprobantesDePercepcionLink(String menuComprobantesDePercepcionLink) {
        this.menuComprobantesDePercepcionLink = menuComprobantesDePercepcionLink;
    }

    /* JMENDOZA | 20140210 | Proy. 817: Seteo de Menu Consulta de Despacho */
    /* 20140210-02 | INICIO */
    public Boolean getMenuQueTengoProgramado() {
        return menuQueTengoProgramado;
    }

    public void setMenuQueTengoProgramado(Boolean menuQueTengoProgramado) {
        this.menuQueTengoProgramado = menuQueTengoProgramado;
    }

    public String getMenuQueTengoProgramadoLink() {
        return menuQueTengoProgramadoLink;
    }

    public void setMenuQueTengoProgramadoLink(String menuQueTengoProgramadoLink) {
        this.menuQueTengoProgramadoLink = menuQueTengoProgramadoLink;
    }

    public Boolean getMenuDespachosDelDia() {
        return menuDespachosDelDia;
    }

    public void setMenuDespachosDelDia(Boolean menuDespachosDelDia) {
        this.menuDespachosDelDia = menuDespachosDelDia;
    }

    public String getMenuDespachosDelDiaLink() {
        return menuDespachosDelDiaLink;
    }

    public void setMenuDespachosDelDiaLink(String menuDespachosDelDiaLink) {
        this.menuDespachosDelDiaLink = menuDespachosDelDiaLink;
    }
    /* 20140210-02 | FIN */
}
